1. Field of the Invention
The present invention relates to an absolute position detector for detecting an absolute position of a component of a device that undergoes a relative displacement by linear or rotational movement, and particularly to signal processing of a sensor output signal used in such a detector.
2. Description of the Related Art
In recent years, direct drive motor systems which incorporate built-in motors and which enable accurate, high speed work have come to be used in rotary tables for machine tooling. In general, because direct drive motor systems enable the detection of magnetic position of a motor and do not require any adjustment of the origin after start-up, such systems are used to implement absolute position detectors capable of detecting absolute positions.
A conventional example of an absolute position detector is a rotary absolute position detector that uses magnetic properties, as shown in FIG. 12. FIG. 13 is a block diagram explaining the operations by which a microcomputer shown in FIG. 12 performs signal processing using software. FIG. 14 is a block diagram explaining the operations of a binarization processor shown in FIG. 13. FIG. 15 is a graph showing the rotational position characteristic of signal SA4 obtained by correcting signal S4 by an offset amount. Further, FIG. 16 is a graph showing the rotational position characteristic of signal C2 obtained after a selector selects signal SA4 or signal SA5.
In FIG. 12, an absolute code disk 2 is composed of a soft magnetic material, and is fixed to a rotational shaft 1. On the outer periphery of the absolute code disk 2, 180 bits of absolute code are recorded such that each 1/180 of the circumference corresponds to 1 bit, with each concave portion denoting “0” and each convex portion denoting “1”. The 180-bit code is characterized in that a consecutive 8-bit code pattern differs in every reading position. Accordingly, when the code is read for eight consecutive bits, the rotational position of the rotational shaft 1 can be detected in an absolute manner. Further, an incremental code disk (not shown) is fixed to the rotational shaft 1 on the rear side of the absolute code disk 2. The incremental code disk is shaped similar to a gear wheel which repeats the pattern of concave and convex portions at a pitch of 1/180 rotation, and is composed of a soft magnetic material. On a fixed member provided adjacent to the outer periphery of the absolute code disk 2, a magnetic sensor group 3 including 24 magnetic sensors is arranged in a straight line, with the individual sensors being spaced apart from one another by a distance equivalent to approximately 1/360 rotation of the absolute code disk 2. Further, two magnetic sensors 7, 8 are mounted on a fixed member and positioned adjacent to the outer periphery of the incremental code disk spaced apart from one another by a distance equivalent to approximately 1/720 of the circumference of the incremental code disk.
Both the magnetic sensor group 3 and the magnetic sensors 7, 8 use a permanent magnet or an electromagnet to generate a direct-current or alternating-current magnetic field toward the code disk side, and then convert the magnetic flux, which varies in accordance with changes in magnetic resistance generated by the concave and convex portions on the outer peripheries of the code disks composed of magnetic materials, into electric signals by means of components such as magnetic resistor elements and coils. When sensor output signals from the 24 sensors of the magnetic sensor group 3 are numbered as signals s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, and s23, in that order from the rightmost sensor, a selector 4 configured with an analog switch for receiving 24 inputs and providing a single output switches the sensor signal sequentially from s0 to s23 at uniform time intervals in accordance with selection signal SEL supplied from a microcomputer 13, and outputs the selected sensor signal to an amplifier 5. The amplifier 5 amplifies the sensor signal and outputs the amplified signal to an AD converter 6. The AD converter 6 sequentially converts the amplified sensor output signals s0-s23 into digital signals S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, and S23, and outputs the digital signals to the microcomputer 13. Further, output signals AS, AC from the magnetic sensors 7, 8 are amplified by amplifiers 9, 10 and subsequently converted into digital signals DS, DC by AD converters 11, 12, respectively. The digitized signals DS, DC from the magnetic sensors 7, 8 are output to the microcomputer 13. According to the arrangement of FIG. 12, the signals DS, DC are output as numerical values proportional to the sine value and the cosine value, respectively, of the rotational position, where a rotation of 1/180 of the rotational shaft 1 corresponds to one cycle.
The signals DS and DC obtained by digitizing the output signals from the magnetic sensors 7, 8 are input into an interpolation processor 16 and subjected to bivariate arctangent calculation. As a result, an 8-bit numerical value PL denoting the absolute position of the rotational shaft 1 within 1/180th of a rotation is output from the interpolation processor 16. Further, the signals S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, and S23 obtained by digitizing the output signals from the magnetic sensor group 3 are input into a binarization processor 14. In the binarization processor 14, offset amounts On, On+1 stored in advance in memory devices 21, 22 are subtracted by subtractors 27, 28 from signals Sn and Sn+1 output from two adjacent sensors (n is an even number that satisfies 0≦n≦22), respectively, so as to output signals SAn and SAn+1. The selector 31 selects the numerical value of either one of signals SAn and SAn+1 depending on whether the most significant bit (MSB) of the 8-bit numerical value PL is 1 or 0, and outputs the selected signal to a comparator 32. The comparator 32 judges whether the selected signal is greater or smaller than 0, and outputs the judged result as binarized numerical value Bm (where m=n/2).
The most significant bit (MSB) of the numerical value PL denotes whether the rotational shaft 1 is positioned in an even- or odd-numbered region when one rotation of the rotational shaft 1 is divided into 360 regions. Using this information, the selector 31 in the binarization processor 14 selects, from among two sensor signals SAn and SAn+1 within the range equivalent to 1 bit ( 1/180 rotation) of the absolute code disk 2, the sensor signal obtained from a sensor located further away from a bit border at which the bit changes. In this manner, it is possible to binarize a specific bit of the absolute code while avoiding use of a signal from a bit border at which read errors are likely to occur. As described above, the binarization processor 14 can read out, from among the 24 output signals from the magnetic sensor group 3, a consecutive 12-bit numerical value recorded on the absolute code disk 2 as code B. The 12-bit code B identified by the binarization processor 14 is decoded by a decoder 15 to determine the rotational position corresponding to the 8-bit code from B2 to B9 located in the middle portion of the code B, and 8-bit numerical value PH denoting the rotational position of the rotational shaft 1 within one rotation is output. An adder 17 synthesizes a 16-bit numerical value by using the 8-bit numerical value PL denoting the absolute position of the rotational shaft 1 within 1/180 rotation as the lower-order bits and the 8-bit numerical value PH as the higher-order bits, and outputs the synthesized result as numerical value PO. In this manner, the absolute rotational position of the rotational shaft 1 within one rotation can be expressed by the 16-bit numerical value PO.
With a conventional absolute encoder such as that shown in FIG. 12, because the rotor can be manufactured using a magnetic material such as iron or an iron alloy, rotors having various outer diameters and provided with apertures having various inner diameters can be relatively easily manufactured by metal processing. Further, because the absolute position can be detected by the plurality of linearly-arranged magnetic sensors irrespective of curvature of the rotor circumference, identical sensor units can be used to detect absolute positions of rotors having various outer diameters. Accordingly, by employing the configuration shown in FIG. 12, it is possible to design absolute encoders of various sizes of outer diameters and aperture diameters without expending significant development costs, such that the conventional absolute encoder has come to be considered suitable for applications such as rotary tables of machine tools in which various sizes of outer diameters and aperture diameters are required for different models. Furthermore, as it is only necessary to provide one type of sensor unit (in which malfunctions tend to be more frequent than in rotors composed substantially of metal lumps), maintenance costs can be minimized.
However, in the absolute encoder using magnetism shown in FIG. 14, because the magnetic sensors are arranged in a straight line, the gap with respect to the absolute code disk 2 becomes larger for the magnetic sensors located further toward the two ends of the sensor group due to the curvature of the absolute code disk 2. Accordingly, signal changes caused by the concave and convex portions of the absolute code disk 2 become smaller for the magnetic sensors located further toward the two ends, resulting in degraded code reading accuracy. For this reason, in order to determine the absolute position, the decoder 15 uses the 8-bit code binarized from 16 sensor signals obtained from the middle portion at which the code read accuracy is relatively high. Nevertheless, as shown at segment e in the graph of FIG. 15 and segment f in the graph of FIG. 16, it can be understood that, even when the sensor signals from the middle portion are used, code reading errors (or “code read errors”) are likely to occur in a sensor signal supplying the numerical value B2 which corresponds to the bit at an end of the 8-bit code. Reading errors of this type are common in magnetic sensors due to poor rectilinearity of magnetic flux. Because of the poor rectilinearity of magnetic flux, magnetic sensors tend to be influenced not only by the state of concave and convex portions on the outer periphery of the code disk but also by the code disk shapes in the surroundings. Accordingly, read errors are conventionally prevented by finely adjusting the offset amount for the sensor corresponding to the bit in which a read error occurred.
According to the above-described method, the offset amounts must be adjusted for every different type of code disk, which would be troublesome. Further, it is disadvantageous in that, even when no read errors occur immediately after adjustment, it is not uncommon for read errors to be generated as a result of slight changes in sensor characteristics caused by temperature changes, changes over time, or the like. It should be noted that such a disadvantage is not limited to magnetic sensors but similarly exists in sensors using light which demonstrates good rectilinearity, in that signal interference between optical sensors tend to occur more frequently when the bit pitches of the code recorded on the absolute track are narrower.